<?php
class cataporte_controller extends CI_Controller	{
	
	private $datos = array();
	private $limit = 20	;	
	private $hay_cataporte;	
	private $fecha_venta;
	private $mensaje_fecha_no_existe='';

	function __construct()
	{
		parent::__construct();
		$this->load->library(array('form_validation','plantilla','table','Validation','session','encriptar'));
		$this->mensaje_fecha_no_existe = '';	
		$this->fecha_venta= '';	
		$this->load->model('cataporte_model');				
	}
	
	function index($offset = 0)	{
		
		$data = $this->ocultar_tabla();
		$data['fecha_venta'] = 	$this->fecha_venta;
		$this->plantilla->show('Cataporte/listar_cataporte',$data);
	}
	
	
	function listar_cataporte($offset = 0)		{	
				
		
		// offset
		$uri_segment = 3;
		$offset = $this->uri->segment($uri_segment);
		$lista_cataporte=NULL;		
		//cargo la data desde el metodo		
		//veifico q la fecha de la venta este cargada
		$this->fecha_venta = $this->input->post('fecha_venta');
		$this->datos['id_venta_sucursal'] = '';
		$venta_obj = $this->verificar_fecha_venta()->row();
		if (!(empty($venta_obj)))	{			
			$this->datos['id_venta_sucursal'] = $venta_obj->id_venta_sucursal;
			$lista_cataporte = $this->cataporte_model->get_lista_cataporte($this->limit, $offset,$this->datos)->result();
		}			
		//genero la paginacion
		//lo comento mientras resuelvo		
		$data['pagination'] = $this->paginacion($uri_segment);		
		//creo la tabla		
		$data['table'] =  $this->crear_tabla($lista_cataporte);
		//cargo la vista		
		$data['hay_cataporte'] = $this->hay_cataporte;			
		$data['fecha_venta'] = $this->fecha_venta;	
		$this->plantilla->show('Cataporte/listar_cataporte',$data);
	}
	
	function guardar_cataporte()	{		
		if ($this->validarCampos())		{
			$this->obtener_datos_formulario();
			$venta_obj = $this->verificar_fecha_venta()->row();
			if (!(empty($venta_obj)))	{ 
				//asigno el id de la fecha
				$this->datos['id_venta_sucursal'] = $venta_obj->id_venta_sucursal;
				
				$this->cataporte_model->save($this->datos);
				//$this->index();
				$this->listar_cataporte_guardado();
			}
			else{				
				$this->mensaje_fecha_no_existe = 'No se puede Guardar el cataporte, deben cargar la venta del dia';
				$this->session->set_flashdata('fecha_no_existe',$this->mensaje_fecha_no_existe);
				
			}			
		}	
		else {		
			$this->session->set_flashdata('fecha_no_existe','');			
			$this->plantilla->show('Cataporte/cataporte');		
		}	
		
		
	}
	
	 
	
	function verificar_fecha_venta()	{
		return $this->cataporte_model->get_by_fecha_venta($this->fecha_venta);
	}
	
	function mostrar_formulario()	{
		$this->plantilla->show('Cataporte/cataporte');
	}
	
	function paginacion($uri_segment)	{
		
				
		$this->load->library('pagination');
		$config['base_url'] = site_url('cataporte_controller/listar_cataporte/');
		if ($this->datos['id_venta_sucursal'] != ''){
 			$config['total_rows'] = $this->cataporte_model->get_cantidad_cataporte($this->datos);
		}
		else{
			$config['total_rows'] = 0;
		}
 		$this->hay_cataporte = (boolean)($config['total_rows'] > 0);
 		$config['per_page'] = $this->limit;
		$config['uri_segment'] = $uri_segment;
		$config['full_tag_open'] = '<p align="center">';
		$config['full_tag_close'] = '</p>';
		$this->pagination->initialize($config);
		return $this->pagination->create_links();
		
	}
	
	function crear_tabla($lista_cataporte=NULL)	{
		
		
		
		$this->table->set_empty("&nbsp;");
		if (! is_null($lista_cataporte) and  count($lista_cataporte)>0)	{			
			$tmpl = array ( 'table_open' => '<table align="center" border="1" cellpadding="2" cellspacing="1" class="">' );
			$this->table->set_template($tmpl);
			$this->table->set_heading('N&uacute;mero de cataporte', 'N&uacute;mero de dep&oacutesito', 'Monto', 'Fecha', 'Acci&oacuten');
			$fecha_encriptada = $this->encriptar->encriptar_parametros($this->fecha_venta);
			foreach ($lista_cataporte as $cataporte){
				$id_encriptado=$this->encriptar->encriptar_parametros($cataporte->id_cataporte);
				$this->table->add_row($cataporte->nro_cataporte,$cataporte->nro_deposito,$cataporte->monto,date('d/m/Y',strtotime($cataporte->fecha)),
										anchor('cataporte_controller/mostrar_cataporte/'.$id_encriptado,'Actualizar',array('class'=>'update')).' '.
										anchor('cataporte_controller/eliminar_cataporte/'.$id_encriptado.'/'.$fecha_encriptada,'Eliminar',array('class'=>'delete','onclick'=>"javascript:return eliminar('Esta seguro de eliminar el cataporte ?')")));	
			}			
			return $this->table->generate();
		}	

		return NULL;
	}
	
	function obtener_datos_formulario()	{
		
		$this->fecha_venta = ($this->input->post('fecha_venta'));
		$this->datos['nro_cataporte']=$this->input->post('nro_cataporte');	
		$this->datos['nro_deposito']=$this->input->post('nro_deposito');
		$this->datos['monto']=$this->input->post('monto');
		$this->datos['fecha']=$this->input->post('fecha');	
		
	}
	
	function validarCampos()	{
		$this->form_validation->set_rules('fecha_venta', 'Fecha de la venta', 'required');
		$this->form_validation->set_rules('nro_cataporte', 'N&uacute;mero de cataporte', 'required|numero');
		$this->form_validation->set_rules('nro_deposito', 'N&uacute;mero de dep&oacutesito', 'required|numero');		
		$this->form_validation->set_rules('monto', 'Monto', 'required|numero_decimal');
		$this->form_validation->set_rules('fecha', 'Fecha', 'required');
		return $this->form_validation->run() == true;
	}
	function validar_fecha()	{
		$this->form_validation->set_rules('fecha', 'Fecha', 'required');
		return $this->form_validation->run() == true;
	}
	
	function ocultar_tabla()	{
		
		$data['pagination'] = '';				
		//creo la tabla
		$this->crear_tabla();
		//generate table data
		$data['table'] =  '';
		//cargo la vista		
		$data['hay_cataporte'] = true;
		return $data; 
	}
	
	function mostrar_cataporte($id_encriptado)	{
		
		$id_cataporte=$this->encriptar->desencriptar_parametros($id_encriptado);		
		
		$this->datos = $this->cataporte_model->get_by_id_cataporte($id_cataporte)->row_array();		
		if (!empty($this->datos))	{		
			$this->datos['id_encriptado'] = $id_encriptado;		 	
			$this->plantilla->show('Cataporte/actualizar_cataporte',$this->datos);		
		}
				
	}
	
	
	
	function actualizar_cataporte($id_encriptado)		{
		
		$id_desencriptado = $this->encriptar->desencriptar_parametros($id_encriptado);
		if ($this->validarCampos())		{
			$this->obtener_datos_formulario();
			$venta_obj = $this->verificar_fecha_venta()->row();
			if (!(empty($venta_obj)))	{ 
				//asigno el id de la fecha
				$this->datos['id_venta_sucursal'] = $venta_obj->id_venta_sucursal;
			}
			$this->datos['id_cataporte']= $id_desencriptado;
			$this->cataporte_model->actualizar($id_desencriptado,$this->datos);
			$this->listar_cataporte_guardado();
			//$this->load->view('Cataporte/resultado',$this->datos);
		}	
		else {			
			$this->plantilla->show('Cataporte/cataporte');		
		}	
		
	}

	function listar_cataporte_guardado($offset = 0)	{
		$this->datos['fecha_venta'] = $this->fecha_venta;
		// offset
		$uri_segment = 3;
		$offset = $this->uri->segment($uri_segment);		
		//cargo la data desde el metodo		
		$venta_obj = $this->verificar_fecha_venta()->row();
		$this->datos['id_venta_sucursal'] = '';
		if (!(empty($venta_obj)))	{			
			$this->datos['id_venta_sucursal'] = $venta_obj->id_venta_sucursal;
			$lista_cataporte = $this->cataporte_model->get_lista_cataporte($this->limit, $offset,$this->datos)->result();
		}						
		//genero la paginacion
		//lo comento mientras resuelvo		
		$data['pagination'] = $this->paginacion($uri_segment);		
		//creo la tabla		
		$data['table'] =  $this->crear_tabla($lista_cataporte);
		//cargo la vista		
		$data['hay_cataporte'] = $this->hay_cataporte;
		$data['fecha_venta'] = $this->fecha_venta;			
		$this->plantilla->show('Cataporte/listar_cataporte',$data);
		
	}
	
	function eliminar_cataporte($id_encriptado,$fecha_venta_encrip)	{
		if (!(empty($id_encriptado)) && (!(empty($id_encriptado))))	{
			$id_cataporte = $this->encriptar->desencriptar_parametros($id_encriptado);
			$this->fecha_venta = $this->encriptar->desencriptar_parametros($fecha_venta_encrip);
			$this->cataporte_model->eliminar($id_cataporte);				
			$this->listar_cataporte_guardado();
		}
		
	}
}
?>